{{tag>Xenial matériel imprimante Canon}}
----

====== Installer le pilote d'imprimantes Canon CAPT ======
 
**[[:liste_imprimantes_canon|Consulter la liste des imprimantes Canon]] pour savoir si votre imprimante est supportée par ce pilote fourni par Canon.**

<note warning>Sous Ubuntu 16.04, ou bien cela est lié au dernier pilote de Canon (la version 2.7x), de nombreux problèmes subsistent avec la LBP2900 et peut-être d'autres LBP. Un [[pilote_canon_capt_alternatif|pilote alternatif]] a été développé et fonctionne très bien avec ce modèle et probablement d'autres LBP. Une autre solution est proposée [[https://askubuntu.com/questions/956674/how-to-make-canon-lbp2900b-work-on-ubuntu-16-04-lts|ici]].
 <sup>**en**</sup>, (installer le pilote 32 bits en 64 bits) et [[https://forum.ubuntu-fr.org/viewtopic.php?id=2010140|là]] <sup>**fr**</sup>.</note>
<note importante>Si cette page ne vous a pas aidé à faire fonctionner votre imprimante vous pouvez toujours essayer le [[pilote_canon_capt_alternatif|pilote alternatif]].</note>

===== Téléchargement du pilote Canon CAPT =====
Le pilote Canon CAPT se présente sous la forme d'un fichier unique de type archive au format **[[:tar|tar.gz]]**.\\
Cette archive d'environ 127 Mo nommée : **linux-capt-drv-v271-uken.tar.gz** est à télécharger **[[http://support-sg.canon-asia.com/contents/SG/EN/0100459601.html|ici]]**.



==== Extraction de l'archive ====

Les fichiers téléchargés sous Ubuntu se trouvent par défaut dans le dossier //**Téléchargements**// du compte utilisateur en cours.\\
[[:archivage|Extrayez]] l'archive //linux-capt-drv-v271-uken.tar.gz// ce qui libérera un dossier : \\ << **linux-capt-drv-v271-uken** >>.

Le dossier **linux-capt-drv-v271-uken** inclut les sous-dossiers par [[:architecture_materielle#mon_ubuntu_est-il_en_32_bits_ou_en_64_bits|architectures]] :
  * //**32-bit_Driver**// : Contient les [[:paquet|paquets .deb]] pour l'installation sur **[[:architecture_materielle|architecture]] 32bits**((il y a également les paquets au format RPM 32-bits)). //Voir la méthode : [[#Installation du pilote pour 32 bits]].//
  * //**64-bit_Driver**// : Contient les [[:paquet|paquets .deb]] pour l'installation sur **[[:architecture_materielle|architecture]] 64bits**((il y a également les paquets au format RPM 64-bits)). //Voir la méthode : [[#Installation du pilote pour 64 bits|Installation du pilote pour 64 bits]].//
   * //**Doc**// : Contient les informations légales relatives à l'utilisation et à __l'installation du pilote__. \\

===== Installation du pilote Canon CAPT =====

Le pilote Canon CAPT nécessite l'[[:tutoriel:comment_installer_un_paquet|installation des paquets]] : **[[apt>libglade2-0,libcanberra-gtk-module]]** \\ 

<note>Vérifier que l'imprimante est allumée et connectée à l'ordinateur.</note>

==== Installation du pilote pour 32 bits ====
Depuis le dossier **linux-capt-drv-v271-uken**, naviguez jusqu'au chemin //**32-bit_Driver**//.

Dans ce dernier, se trouve un dossier //**Debian **//qui contient les deux pilotes mis sous forme de [[:paquet]] :\\
  * **cndrvcups-common_3.21-1_i386.deb** 
  * **cndrvcups-capt_2.71-1_i386.deb**

Pour [[:tutoriel;comment_installer_un_paquet|installer les pilotes]], depuis votre [[:gestionnaire de fichiers]], il suffira généralement de faire un double-clic sur le [[:paquet]] **cndrvcups-common_3.21-1_i386.deb** et de suivre les instructions de votre [[:gestionnaire de paquets]].

Vous ferez ensuite un double-clic sur le [[:paquet]] **cndrvcups-capt_2.71-1_i386.deb** afin de finaliser l'installation du pilote.

==== Installation du pilote pour 64 bits ====
Depuis le dossier **linux-capt-drv-v271-uken**, naviguez jusqu'au chemin //**64-bit_Driver**//.

Dans ce dernier, se trouve un dossier //**Debian **//qui contient les deux pilotes mis sous forme de [[:paquet]] :\\
  * **cndrvcups-common_3.21-1_amd64.deb** 
  * **cndrvcups-capt_2.71-1_amd64.deb**

Pour [[:tutoriel:comment_installer_un_paquet|installer les pilotes]], depuis votre [[:gestionnaire de fichiers]], il suffira généralement de faire un double-clic sur le [[:paquet]] **cndrvcups-common_3.21-1_amd64.deb** et de suivre les instructions de votre [[:gestionnaire de paquets]].

Vous ferez ensuite un double-clic sur le [[:paquet]] **cndrvcups-capt_2.71-1_amd64.deb** afin de finaliser l'installation du pilote.


=== Pour les versions Ubuntu 64 bits ===
Le pilote CAPT nécessite aussi l'installation des paquets 32bits suivants : **[[apt>libatk1.0-0:i386,libcairo2:i386,libgtk2.0-0:i386,libpango1.0-0:i386,libstdc++6:i386,libxml2:i386,libpopt0:i386]]** \\ 


===== Installation de l'imprimante =====
Il faut maintenant installer l'imprimante pour qu’elle puisse fonctionner.\\
Cette partie utilise le [[:terminal]].\\
N'oubliez pas que la documentation, fournie dans l'archive d'installation du pilote, peut vous donner des informations complémentaires à cette page.

<note>Si vous n'êtes pas familier avec le vocabulaire utilisé ou si vous désirez avoir une vision d'ensemble de l'impression sous Ubuntu, consultez la page : **[[:impression_sous_ubuntu|Comprendre l'impression sous Ubuntu]]**.</note>

==== Pré-requis ====
Connaître le nom du **fichier ppd(([[wpfr>Printer_Postscript_Description|Printer Postscript Description]]))** du pilote, correspondant à votre imprimante.\\
Tapez cette commande dans un [[:terminal]] pour obtenir la liste des fichiers ppd disponibles : <code>ls /usr/share/cups/model/ | grep CNCUPS</code> 
Pour la plupart des modèles, vous trouverez 2 fichiers correspondants à votre imprimante : //CNCUPSxxxxCAPTK.ppd// et //CNCUPSxxxxCAPTJ.ppd//.\\ 
La documentation Canon recommande le //CNCUPSxxxxCAPTK.ppd//.\\ 
Si après avoir suivi ce tutoriel votre imprimante ne fonctionne pas, essayez avec le fichier //CNCUPSxxxxCAPTJ.ppd//. \\
Vous trouverez également **[[:liste_imprimantes_canon#lasershot_lbp_et_i-sensys_lbp|ici]]** la liste des fichiers PPD pour votre imprimante.

==== Relancer CUPS ====
Pour que l'installation du pilote CAPT soit prise en compte par [[:CUPS]], entrer les commandes suivantes dans un [[:terminal]] : 
<code>sudo systemctl stop cups</code>
<code>sudo systemctl start cups</code>
\\

==== Pour les versions Ubuntu 32 bits et 64 bits ====

Elle se passe en trois étapes : 
  - Installer la nouvelle imprimante dans [[:CUPS]] en indiquant quel pilote utiliser,
  - Indiquer au démon ccpd((démon spécifique à Canon pour la gestion de l'imprimante)) cette imprimante,
  - Démarrer le démon ccpd.

=== Installation de l'imprimante dans CUPS ===

Taper la commande suivante dans un [[:terminal]] : 

<code>sudo /usr/sbin/lpadmin -p [nom de l'imprimante] -m [fichier ppd] -v [uri périphérique] -E</code>
où :
  * -p [nom de l'imprimante] : modèle de l'imprimante
  * -m [fichier ppd] : nom du fichier .ppd du pilote (cf [[#pré-requis]] pour connaître son nom)
  * -v [uri périphérique] : définit l'attribut device-uri de la file d'attente de l'imprimante.\\ Ici on mettra : ''%%ccp://localhost:59787%%''\\ 
  * -E : active l'imprimante déterminée et autorise les demandes d'impression sur ce périphérique \\ 

Exemple pour une LBP5000 :

<code>sudo /usr/sbin/lpadmin -p LBP5000 -m CNCUPSLBP5000CAPTK.ppd -v ccp://localhost:59787 -E</code>

<note important>Le nom du fichier .ppd doit être exact. Attention donc à bien en respecter la casse((minuscule/majuscule)).
</note>

Si cette méthode ne fonctionne pas, vous pouvez toujours utiliser l'ancienne procédure qui consistait à :\\ 
  - Vérifier l'existence ou créer les dossiers et fichiers **/var/ccpd**, **/var/captmon** et **/var/ccpd/fifo0** : <code>sudo mkdir /var/ccpd
sudo mkdir /var/captmon
sudo mkfifo /var/ccpd/fifo0
sudo chown -R lp:lp /var/ccpd/</code>
  - Installer l'imprimante dans CUPS avec la commande suivante :\\ (exemple pour une LBP5000) <code>sudo /usr/sbin/lpadmin -p LBP5000 -m CNCUPSLBP5000CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E</code> 

\\
=== Enregistrer l'imprimante dans le démon ccpd ===

Taper la commande suivante dans un [[:terminal]] : 

<code>sudo /usr/sbin/ccpdadmin -p [nom de l'imprimante] -o [device]</code>
où :

  * [Nom de l'imprimante] : nom que vous avez choisi lors de l'[[#commande d'installation|installation dans cups]]
  * [device] : emplacement du fichier du périphérique : Vérifier dans le répertoire ///dev/usb// le nom exact (lp0; lp1; lp2 ...)

<note>L'imprimante doit être allumée et connectée car le fichier ///dev/usb/lpxx// est recréé automatiquement à chaque connexion de l'imprimante.
</note>

    * **Valeur de [device] pour une connexion en usb sur ///dev/usb/lp0// :**
      * [device] sera remplacé par : // /dev/usb/lp0 // 
      * Exemple pour une LBP5000 : <code>sudo /usr/sbin/ccpdadmin -p LBP5000 -o /dev/usb/lp0</code>\\ Exemple de retour de cette commande pour une LBP5000 :  <file> Usage: 
  ccpdadmin [-p Printer-name -o Printer-dev-path]
  ccpdadmin [-x Remove-Printer-name]

 CUPS_ConfigPath = /etc/cups/
 LOG Path        = None
 UI Port         = 59787

 Entry Num  : Spooler	: Backend	: FIFO path		: Device Path 	: Status 
 ----------------------------------------------------------------------------
     [0]    : LBP5000 	: ccp 		: //localhost:59787 	: /dev/usb/lp0  : New!! </file>
    * **Valeur de [device] pour une connexion en réseau :**
      * net : [adresse IP]
      * Exemple pour une LBP5000 : <code>sudo /usr/sbin/ccpdadmin -p LBP-5000 -o net:192.168.0.20</code>
  
   Il peut être nécessaire d'ajouter une ligne // Allow From [adresse IP] // dans les sections // <Location /> // et // <Location /admin> // du fichier ** /etc/cups/cupsd.conf **.\\ \\ 


=== Démarrer le démon ccpd ===
 1. Adapter le démon ccpd au fonctionnement d'Ubuntu : \\
[[:tutoriel:comment_modifier_un_fichier|Ouvrez avec les droits d'administration]] le fichier : **/etc/init.d/ccpd** et ajoutez ces lignes après les 2 premières :
<file>
### BEGIN INIT INFO
# Provides:          ccpd
# Required-Start:    $local_fs $remote_fs $syslog $network $named
# Should-Start:      $ALL
# Required-Stop:     $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Start Canon Printer Daemon for CUPS
### END INIT INFO
</file>
Terminez en enregistrant ce fichier.\\ \\ 

Vous devez avoir ceci :
<file>
#!/bin/sh
# startup script for Canon Printer Daemon for CUPS (ccpd)
### BEGIN INIT INFO
# Provides:          ccpd
# Required-Start:    $local_fs $remote_fs $syslog $network $named
# Should-Start:      $ALL
# Required-Stop:     $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Start Canon Printer Daemon for CUPS
### END INIT INFO

if [ `ps awx | grep cupsd | grep -v grep | wc -l` -eq 0 ]; then
	while [ `ps awx | grep cupsd | grep -v grep | wc -l` -eq 0 ]
	do
........................................

</file>

\\

 2. Tapez la commande suivante :
<code>sudo service ccpd start</code>

\\

==== Vérifications de l'installation ===
1. Taper dans un [[:terminal]] la commande suivante pour vérifier le fonctionnement du démon ccpd :
<code>sudo service ccpd status</code>

vous devriez avoir en retour quelque chose du type :
<file>● ccpd.service
   Loaded: loaded (/etc/init.d/ccpd; bad; vendor preset: enabled)
   Active: active (running) since mar. 2016-05-03 15:29:37 CEST; 1min 31s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 11374 ExecStart=/etc/init.d/ccpd start (code=exited, status=0/SUCCESS
    Tasks: 5 (limit: 512)
   CGroup: /system.slice/ccpd.service
           ├─11382 /usr/sbin/ccpd
           ├─11383 /usr/sbin/ccpd
           └─11384 captmonlbp5000 --data-write-fd=4 --data-read-fd=11 --cmd-writ

mai 03 15:29:37 user1-System-Product-Name systemd[1]: Starting ccpd.service...
mai 03 15:29:37 user1-System-Product-Name ccpd[11374]: Starting /usr/sbin/ccpd: 
mai 03 15:29:37 user1-System-Product-Name systemd[1]: Started ccpd.service.
lines 1-14/14 (END)
</file>

<note tip>Taper sur la touche  **q**    pour reprendre la main dans le terminal. \\ Si vous ne voyez ce type de réponse, [[:tutoriel:comment_modifier_un_fichier|éditez avec les droits d'administration]] le fichier **/etc/ccpd.conf** et ajoutez ceci (remplacez //LBP5000// et ///dev/usb/lp0// par ce que vous avez indiqué précédemment) : 
<file>
<Printer LBP5000>
DevicePath /dev/usb/lp0
</Printer>

</file>
Redémarrer le démon ccpd et vérifier de nouveau son statut :
<code>
sudo service ccpd restart
sudo service ccpd status</code>
</note>

2. Tapez dans un [[:terminal]] la commande suivante pour vérifier l'enregistrement dans le démon ccpd :
<code>sudo ccpdadmin</code>la commande doit vous renvoyer :
<file>
Usage:
  ccpdadmin [-p Printer-name -o Printer-dev-path]
  ccpdadmin [-x Remove-Printer-name]
 CUPS_ConfigPath = /etc/cups/
 LOG Path        = None
 UI Port         = 59787
 Entry Num  :Spooler   :Backend  :   FIFO path       : Device Path  : Status
 -------------------------------------------------------------------
   [0]    :LBP-XXX     : ccp    : //localhost:59787 : /dev/usb/lp0  :
</file>
où //LBP-XXX// et ///dev/usb/lp0// sont à adapter  selon la manière dont vous avez installé votre imprimante dans le démon ccpd.\\
S'il y a une erreur, elle apparaîtra en fin de ligne.\\ \\

3. Taper dans un [[:terminal]] la commande suivante pour vérifiez l'état de l'imprimante :
<code>captstatusui -P [nom de l'imprimante]</code> 
où [nom de l'imprimante] est le nom que vous avez donné lors de l'[[#Installation de l'imprimante dans CUPS|installation dans cups]].\\
La commande doit ouvrir la fenêtre du //Canon Statusmonitor//((Le //Canon Statusmonitor// donne accès à certaines fonctionnalités avancées de l'imprimante telles que : nombres pages imprimées, niveaux toners, calibrage, nettoyage ou encore mise en veille)) avec le message "**Ready to print** (ou sleeping)".\\

<note tip>Si toutefois la commande retourne le message "**capstatusui Socket Error**", vous pouvez essayer de redémarrer le démon ccpd et le service d'impression avec les commandes suivantes :
<code>sudo service ccpd stop</code>
<code>sudo service cups restart</code>
<code>sudo service ccpd start</code>
Si cela ne suffit pas, laissez l'imprimante allumée et connectée puis redémarrez l'ordinateur. Penser ensuite à lancer le démon ccpd.</note>


Si ces vérifications sont positives, l'imprimante devrait-être opérationnelle.\\
Essayer d'imprimer un document à partir de l'application de votre choix. Si les impressions sortent correctement vous pouvez passer à l'étape suivante.

<note>Tant que vous n'aurez pas réalisé la partie [[#Automatiser le démarrage du démon ccpd]], il faudra lancer le démon ccpd manuellement à chaque redémarrage de l'ordinateur. <code>sudo service ccpd start</code></note>
 \\ 

4. Définir cette imprimante par défaut (si vous le souhaitez) :\\
Ouvrez l'application "//Imprimantes//" faites un clic droit sur l'icone de l'imprimante et sélectionnez "//Définir par défaut//". \\ 
Il se peut que vous trouviez une deuxième imprimante identifiée "//LBPxxxx-2//". Elle aura été créée par le système de détection automatique des imprimantes. Ignorez là, le système ne sait pas installer correctement ces imprimantes et si vous la supprimez elle reviendra.


===== Automatiser le démarrage du démon ccpd =====

Une fois correctement installée, pour que l'imprimante fonctionne d'une façon transparente pour l'utilisateur, il faut automatiser le démarrage du démon ccpd. \\ 


<note important>Vérifier bien **quelle version d'Ubuntu** vous utilisez et exécutez les opérations correspondantes. \\ En cas d'erreur celà peut provoquer des difficulté de fonctionnement du système. </note>

==== Pour la version 14.04 ====
[[:tutoriel:comment_modifier_un_fichier|Créez avec les droits d'administration]] un fichier : **/etc/init/ccpd-start.conf** pour y insérer ceci:

<file>
# ccpd-start - Lance ccpd 
 
description    "Start daemon ccpd for Canon printers"

start on runlevel [2345]
stop on runlevel [016]

exec /etc/init.d/ccpd start

</file> 

Terminez en enregistrant ce fichier.\\


==== Pour la version 16.04 et plus récentes ====
Taper la commande suivante dans un [[:terminal]] : 
<code>sudo update-rc.d ccpd defaults</code>


===== Retirer une imprimante =====
En cas d'erreur de manipulation, il peut être utile d'avoir à retirer une imprimante installée de manière erronée.\\
Dans un [[:terminal]], on saisira : 
<code>sudo /usr/sbin/ccpdadmin -x [nom de l'imprimante]</code>
où [nom de l'imprimante] est le nom que vous avez donné lors de l'[[#commande d'installation|installation dans cups]].\\

Lorsque aucune imprimante n'est installée, la commande : 
<code>sudo /usr/sbin/ccpdadmin </code>

donnera un résultat de ce type : 
<file>
Usage: 
  ccpdadmin [-p Printer-name -o Printer-dev-path]
  ccpdadmin [-x Remove-Printer-name]
 CUPS_ConfigPath = /etc/cups/
 LOG Path        = None
 UI Port         = 59787
Entry Num  :Spooler  :Backend  :FIFO path  :Device Path  :Status 
 ------------------------------------------------------
</file>

\\
===== Sources =====

  * Documentation Canon fournie avec le pilote d'installation
  * la page man de lpadmin
  * (en)[[https://help.ubuntu.com/community/CanonCaptDrv190|Installation Capt 1.9 sur Ubuntu.com]]
  * (en) [[http://v0xel.wordpress.com/2006/05/23/canoon-lbp-1120-on-ubuntu-510-how-to|Canon lbp-1120 How to]] sur v0xel.wordpress.com
  * (en) [[http://ubuntuforums.org/showthread.php?t=1315665|Fil de discussion]] sur ubuntuforums.org

----
//Contributeurs:// [[:utilisateurs:murex]], [[:utilisateurs:fabux]], [[:utilisateurs:Antoine P]]
